#include "biblioteca.h"
#include <time.h>

int classe_procurada = 1;

void inicializa_variaveis(){
    //seed = 11235813;
    //seed = 31415936;
    //seed = 7654321;
    //seed = 237142149;
    seed = 13111990;
    //seed = 1;
    //seed = time(NULL);
    srand(seed);
}

int main(int argc, char **argv){
    void teste(){
        INDI i = create_individuo_aleatorio();
        imprime_individuo(&i);
    }
    void teste2(){
        DP_INDI populacao = create_population();
        register int i = 0;
        for ( ; i < SIZE_POP; ++i)
            imprime_individuo(populacao[i]);
    }
    void teste3(){
        INDI pai1 = create_individuo_aleatorio();
        INDI pai2 = create_individuo_aleatorio();
        ATRIB *filhos = crossover_dois_pontos(&pai1, &pai2);
        INDI i1 = create_individuo_com_material(filhos);
        INDI i2 = create_individuo_com_material(filhos+SIZE_MATERIAL);
        /*imprime_individuo_fast(&pai1);
        imprime_individuo_fast(&pai2);
        imprime_individuo_fast(&i1);
        imprime_individuo_fast(&i2);*/
        imprime_individuo(&pai1);
        imprime_individuo(&pai2);
        imprime_individuo(&i1);
        imprime_individuo(&i2);
    }
    void teste4(){
        int i = 1;
        for ( ; i < 7; ++i){
            classe_procurada = i;
            printf("Procurando classe %d\n",i);
            DP_INDI pop = create_population();
            //executa_algoritmo_genetico(pop, torneio, crossover_dois_pontos, compara_avaliacao_individuos_inverso_const_void, avaliar_individuo, mutacao_local_troca);
	    executa_algoritmo_genetico(pop, torneio, crossover_dois_pontos, compara_avaliacao_individuos_const_void, avaliar_individuo, mutacao_local_troca);
        }
    }
    teste4();
    return 0;
}

